package cluedo.messages;

import java.util.HashMap;
import java.util.Map;

import msgcomm.Receiver;
import msgcomm.messages.RequestAddName;


/**
 * Payload per richiedere la registrazione del nome di un player (che corrisponde
 * con quello dell'associato transceiver) presso il Registration Server.
 * La risposta contiene la mappa dei gruppi.
 */
public class RequestAddPlayer extends RequestAddName {

	private static final long serialVersionUID = 1462810515794175364L;
	
	/**
	 * Receiver associato al playe che chiede la registrazione
	 */
	public final Receiver transName;
	
	/**
	 * Mappa dei gruppi di gioco.
	 * Fa parte della risposta
	 */
	public final HashMap<String, Map.Entry<String, Receiver>> playGroups;

	
	/**
	 * Crea il payload per la richiesta
	 * @param name nome di cui richiedere l'aggiunta
	 * @param transName transceiver del player che vuole registrarsi
	 */
	public RequestAddPlayer(String name, Receiver transName) {
		super(name);
		this.playGroups= null;
		this.transName= transName;
	}
	
	/**
	 * Crea il payload di risposta
	 * @param name
	 * @param transName transceiver del player che vuole registrarsi
	 * @param response esito della richiesta
	 * @param playGroups in caso di risposta affermativa, la mappa dei gruppi
	 */
	public RequestAddPlayer(String name, Receiver transName, boolean response, HashMap<String, Map.Entry<String, Receiver>> playGroups) {
		super(name, response);
		this.playGroups= playGroups;
		this.transName= transName;
	}

	@Override
	public String toString() {
		return "RequestAddPlayer{"+playGroups + ", da parte di "+transName+"}";
	}
}
